
#include "nane/core/crt/Win32/Win32TimeImpl_.h"
#include "nane/core/crt/Context.h"

namespace nane
{
    ////////////////////////////////////////////////////////////////////////////////////////////////
    bool Time::Initialize()
    {
        assert( m_context );
        assert( m_context->timeSystem == NULL );
        nane::m_context->timeSystem = new Implementation();
        if( nane::m_context->timeSystem->Initialize() == false )
        {
            Shutdown();
        }
        return nane::m_context->timeSystem != NULL;
    }
    ////////////////////////////////////////////////////////////////////////////
    void Time::Shutdown()
    {
        if( nane::m_context->timeSystem != NULL )
        {
            nane::m_context->timeSystem->Shutdown();
        }
        delete static_cast<Implementation*>(nane::m_context->timeSystem);
        nane::m_context->timeSystem = NULL;
        Holder<ITimeSystem>::Clear();
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
}   // namespace nane
